﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using LINQPad.Extensibility.DataContext;

namespace LINQPad.OpenAccess.Tests.UIApp.Mocks
{
    public class MockConnectionInfo : IConnectionInfo
    {
        private readonly IDictionary<string, object> _sessionData = new Dictionary<string, object>( );
        private readonly MockCustomTypeInfo _customTypeInfo = new MockCustomTypeInfo( );
        private readonly MockDatabaseInfo _databaseInfo = new MockDatabaseInfo( );

        #region IConnectionInfo Members

        public string AppConfigPath { get; set; }


        public ICustomTypeInfo CustomTypeInfo
        {
            get
            {
                return this._customTypeInfo;
            }
        }

        public IDatabaseInfo DatabaseInfo
        {
            get
            {
                return this._databaseInfo;

            }
        }

        public string Decrypt( string data )
        {
            throw new NotImplementedException( );
        }

        public string DisplayName
        {
            get;
            set;
        }

        public System.Xml.Linq.XElement DriverData
        {
            get;
            set;
        }

        public IDynamicSchemaOptions DynamicSchemaOptions
        {
            get { throw new NotImplementedException( ); }
        }

        public string Encrypt( string data )
        {
            throw new NotImplementedException( );
        }

        public bool Persist
        {
            get;
            set;
        }

        public IDictionary<string, object> SessionData
        {
            get
            {
                return this._sessionData;
            }
        }

        #endregion
    }
}
